﻿using Application_Core.Dispatcher_Component.Access_Layer;
using Application_Core.Dispatcher_Component.Access_Layer.Implementations;
using System;
using System.Collections.Generic;

namespace Client.Client_Component
{
    internal class BestellungServiceImpl : BestellungService
    {
        public void CreateAngebot(AngebotDTO angebotDTO, int kundennummer, int bauteilnummer)
        {
            DispatcherForClientService service = new DispatcherComponentFacade();
            service.RequestInvokeMethod("CreateAngebot", "BestellungService",
                new Type[] { typeof(AngebotDTO), typeof(Int32), typeof(Int32) },
                new Object[] { angebotDTO, kundennummer, bauteilnummer });
        }

        public void CreateAuftrag(int auftragsnummer, int angebotsnummer, int fertigungsauftragsnummer)
        {
            DispatcherForClientService service = new DispatcherComponentFacade();
            service.RequestInvokeMethod("CreateAuftrag", "BestellungService",
                new Type[] { typeof(Int32), typeof(Int32), typeof(Int32) },
                new Object[] { auftragsnummer, angebotsnummer, fertigungsauftragsnummer });
        }

        public void DeleteAngebot(int angebotsnummer)
        {
            DispatcherForClientService service = new DispatcherComponentFacade();
            service.RequestInvokeMethod("DeleteAngebot", "BestellungService", new Type[] { typeof(Int32) }, new Object[] { angebotsnummer });
        }

        public void DeleteAuftrag(int auftragsnummer, int fertigungsauftragsnummer)
        {
            DispatcherForClientService service = new DispatcherComponentFacade();
            service.RequestInvokeMethod("DeleteAuftrag", "BestellungService", new Type[] { typeof(Int32), typeof(Int32) },
                new Object[] { auftragsnummer, fertigungsauftragsnummer });
        }
    }
}
